﻿#ifndef LEDCONTROLLER_H
#define LEDCONTROLLER_H


/**
 * @brief The MCLampControl class 多通道 LED 控制器的纯虚接口，规范了 LED 控制器的几种基本功能。
 */
class MCLampControl
{
public:
    /**
     * @brief value 返回通道 channel 的亮度值
     * @param channel 通道号，从 0 开始
     * @return 返回通道 channel 的亮度值
     */
    virtual int value(int channel) = 0;

    /**
     * @brief setValue 设置光源亮度
     * @param channel 通道号，从 0 开始
     * @param intensity 亮度值，通常为 0 - 255，也可以是其他亮度范围。
     * @return 成功返回 true ，失败返回 false。
     */
    virtual bool setValue(int channel, int intensity) = 0;

    /**
     * @brief valueRange 亮度值的取值范围
     * @param channel 通道号，从 0 开始
     * @param min 亮度值最小值
     * @param max 亮度值最大值
     * @return
     */
    virtual bool valueRange(int channel, int &min, int &max) = 0;

    /**
     * @brief setEnable 打开或者关闭一个光源通道
     * @param channel 通道号，从 0 开始
     * @param on true 时打开此通道。false 关闭通道。
     * @return true 表示调用成功，false 表示失败
     */
    virtual bool setEnable(int channel, bool on) = 0;
};

#endif // LEDCONTROLLER_H
